package com.game.center.messages.response;

import com.game.center.messages.response.vo.PlayerRoleVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
@Schema(title = "用户登录成功后返回参数")
public class PlayerLoginResponseVo {

    @Schema(title = "用户账户 默认是手机号")
    private String account;

    @Schema(title = "玩家ID")
    private long userId;

    @Schema(title = "属租户 1")
    private String tenantId;

    @Schema(title = "手机号码")
    private String phone;

    @Schema(title = "密码")
    private String password;

    @Schema(title = "昵称")
    private String nickName;

    @Schema(title = "姓名")
    private String realName;

    @Schema(title = "个性签名")
    private String personSign;

    @Schema(title = "性别（1：男，2：女，0：未知")
    private Integer sex;

    @Schema(title = "头像")
    private String headimgUrl;

    @Schema(title = "所在城市")
    private String city;

    @Schema(title = "所在国家")
    private String country;

    @Schema(title = "所在省份")
    private String province;

    @Schema(title = "邮箱")
    private String email;

    @Schema(title = "身份证号码")
    private String cardNo;

    @Schema(title = "身份证正面")
    private String cardImg1;

    @Schema(title = "身份证背面")
    private String cardImg2;

    @Schema(title = "实名认证 0未认证  1已认证")
    private Integer realed;

    @Schema(title = "上级ID")
    private String parentId;

    @Schema(title = "用户编码")
    private Integer userCode;

    @Schema(title = "邀请码")
    private String invitationCode;

    @Schema(title = "来源应用（MA：小程序；H5：普通H5；H5-WX：微信H5；APP：app；H5-PC：PC端H5）")
    private String appType;

    @Schema(title = "来源应用id")
    private String appId;

    @Schema(title = "用户等级（0：普通用户，1：普通会员")
    private Integer userGrade;

    @Schema(title = "当前积分")
    private Integer pointsCurrent;

    @Schema(title = "银行卡号")
    private String bankCard;

    @Schema(title = "持卡人姓名")
    private String bankName;

    @Schema(title = "所属银行名称")
    private String bankType;

    @Schema(title = "银行卡片类型：1储蓄卡 2信用卡")
    private Integer bankCardType;

    @Schema(title = "是否为品牌方: 0不是 1是")
    private Integer brandSide;

    @Schema(title = "支付宝账号")
    private String aliAccount;

    @Schema(title = "钱包地址:区块链钱包")
    private String walletToken;

    @Schema(title = "版本号")
    private Integer version;

    @Schema(title = "创建时间")
    private Date createTime;

    @Schema(title = "最后更新时间")
    private Long updateTime;

    @Schema(title = "用户状态（1：启用；0：禁用）")
    private Integer enable;

    @Schema(title = "用户登录成功后的token")
    private String token;

    @Schema(title = "记录已创建角色的基本信息")
    private List<PlayerRoleVo> roles = new ArrayList<>();
}
